#pragma once


#ifndef __CANVAS_REGEX_REGEXDATA_H
#define __CANVAS_REGEX_REGEXDATA_H

#include "..\Collection.h"

namespace Canvas
{
	namespace RegExInternal
	{
		using namespace Canvas::Collection;
		
		class CharRange
		{
		public:
			typedef SortedList<CharRange> List;

			wchar_t	begin;
			wchar_t end;
			bool operator< (CharRange item) const;
			bool operator<=(CharRange item) const;
			bool operator> (CharRange item) const;
			bool operator>=(CharRange item) const;
			bool operator==(CharRange item) const;
			bool operator!=(CharRange item) const;

			bool operator< (wchar_t item) const;
			bool operator<=(wchar_t item) const;
			bool operator> (wchar_t item) const;
			bool operator>=(wchar_t item) const;
			bool operator==(wchar_t item) const;
			bool operator!=(wchar_t item) const;

		};
	}

	template<>
	struct POD<RegExInternal::CharRange>
	{
		static const bool Result = true;
	};
}

#endif // !__CANVAS_REGEX_REGEXDATA_H
